package com.deyuanyun.pic.insp.controller.dto;

import java.util.EnumMap;


/**
 * 
 * @ClassName FeatureTypeForMetalLoss
 * @Description  将枚举类中的金属损失类型关联起来
 * @author 荣华兴
 * @date 2015年9月25日
 */
public class FeatureTypeForMetalLoss {

	private static class SingletonClassHolder{
		static final FeatureTypeForMetalLoss instance=new FeatureTypeForMetalLoss();
	}
	public static FeatureTypeForMetalLoss getinstance(){
		return SingletonClassHolder.instance;
	}
	
	
	private EnumMap<DefectMetaLossFeatureType,String> FeatureTypeMap;//缺陷类型字符串与枚举映射，用于功能统一获取合法的金属损失类型名称
	String metalLoss_externalmetallost="外部金属损失";
	String metalLost_internalmetallost="内部金属损失";
	String metalLost_extemanufactuedetect="外部制造缺陷";
	String metalLost_intemanufactuedetect="内部制造缺陷";
	String metalLost_scratch="划痕";
	
	String externalmetallost="METALOSS_TYPE_WBJSSS";
	String internalmetallost="METALOSS_TYPE_NBJSSS";
	String extemanufactuedetect="METALOSS_TYPE_WBZCQX";
	String intemanufactuedetect="METALOSS_TYPE_NBZCQX";

	private FeatureTypeForMetalLoss() {
		initFlawType();
		
	}
	/**
		* @Description: 将枚举类型和具体汉字类型关联起来，
		* @Author: 荣华兴
		* @Create Date: 2015年10月8日
		* @参数：
		* @Return:void
	 */
	private void initFlawType() {
		FeatureTypeMap=new EnumMap<DefectMetaLossFeatureType,String>(DefectMetaLossFeatureType.class);
		FeatureTypeMap.put(DefectMetaLossFeatureType.METALOSS_TYPE_WBZCQX,metalLost_extemanufactuedetect);
		FeatureTypeMap.put(DefectMetaLossFeatureType.METALOSS_TYPE_WBJSSS,metalLoss_externalmetallost);
		FeatureTypeMap.put(DefectMetaLossFeatureType.METALOSS_TYPE_NBZCQX,metalLost_intemanufactuedetect);
		FeatureTypeMap.put(DefectMetaLossFeatureType.METALOSS_TYPE_NBJSSS,metalLost_internalmetallost);
	}
	/**
		* @Description: 根据枚举名称取值
		* @Author: 荣华兴
		* @Create Date: 2015年10月8日
		* @参数：@param flawTypeEnum
		* @参数：@return
		* @Return:String
	 */
	public String getflawTypeName(DefectMetaLossFeatureType flawTypeEnum){
		
		if(FeatureTypeMap.containsKey(flawTypeEnum)) return FeatureTypeMap.get(flawTypeEnum);
		throw new RuntimeException("没有找到输入的金属损失类型："+FeatureTypeMap.get(flawTypeEnum));
	}
	/**
		* @Description: 对比
		* @Author: 荣华兴
		* @Create Date: 2015年10月8日
		* @参数：@param flawType
		* @参数：@return
		* @Return:boolean
	 */
	public boolean isMetalLoss(String flawType){
		return flawType.equalsIgnoreCase(extemanufactuedetect) ||
		flawType.equalsIgnoreCase(externalmetallost)||
		flawType.equalsIgnoreCase(intemanufactuedetect)||
		flawType.equalsIgnoreCase(internalmetallost);
	}
}
